package com.lzh.lzhframework.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.lzh.lzhframework.domain.ResponseResult;
import com.lzh.lzhframework.domain.dto.feedback.AddFeedbackDto;
import com.lzh.lzhframework.domain.dto.feedback.QueryFeedbackDto;
import com.lzh.lzhframework.domain.dto.feedback.QueryMyFeedbackDto;
import com.lzh.lzhframework.domain.dto.feedback.ReplyFeedbackDto;
import com.lzh.lzhframework.domain.entity.FeedbackEntity;
import com.lzh.lzhframework.domain.vo.feedback.FeedbackStatusVo;
import com.lzh.lzhframework.domain.vo.feedback.FeedbackTypeVo;

import java.util.List;


/**
 * (FeedbackEntity)表服务接口
 *
 * @author luzhiheng
 * @since 2023-11-27 11:47:41
 */
public interface FeedbackService extends IService<FeedbackEntity> {

    /**
     * 用户反馈
     * @param dto 反馈参数
     */
    void addFeedback(AddFeedbackDto dto);

    /**
     * 分页条件查询反馈列表
     * @param dto 查询参数
     * @return
     */
    ResponseResult queryFeedbackPage(QueryFeedbackDto dto);

    /**
     * 查询所有反馈状态
     * @return
     */
    List<FeedbackStatusVo> queryFeedbackStatus();

    /**
     * 回复反馈
     * @param dto
     */
    void replyFeedback(ReplyFeedbackDto dto);

    /**
     * 查询所有反馈类型
     * @return
     */
    List<FeedbackTypeVo> queryFeedbackType();

    /**
     * 拒绝反馈
     * @param id 反馈id
     */
    void rejectFeedback(Long id);

    /**
     * 查询我的反馈
     * @param dto
     * @return
     */
    ResponseResult queryMyFeedbackPage(QueryMyFeedbackDto dto);
}

